home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / ansi / sparc / setjmp.h < prev    next >
C/C++ Source or Header  |  1994-09-14  |  1KB  |  43 lines

  1. /*    @(#)setjmp.h 1.5 89/09/08 SMI; from UCB 4.1 83/05/03    */
  2.  
  3. #ifndef    __sparc_setjmp_h
  4. #define    __sparc_setjmp_h
  5.  
  6. /*
  7.  * The jmp_buf is really a sigcontext followed by extra state we need to save.
  8.  */
  9. #define    _JBLEN    29
  10.  
  11. typedef    unsigned jmp_buf[_JBLEN];
  12.  
  13. /*
  14.  * One extra word for the "signal mask saved here" flag.
  15.  */
  16. typedef    unsigned sigjmp_buf[_JBLEN+1];
  17.  
  18. #ifdef __STDC__
  19. extern int    setjmp(jmp_buf env);
  20. extern int    _setjmp(jmp_buf env);
  21. extern int    sigsetjmp(sigjmp_buf env, int savemask);
  22. extern void    longjmp(jmp_buf env, int val);
  23. extern void    _longjmp(jmp_buf env, int val);
  24. extern void    siglongjmp(sigjmp_buf env, int val);
  25. #else
  26. extern int    setjmp(/* jmp_buf env */);
  27. extern int    _setjmp(/* jmp_buf env */);
  28. extern int    sigsetjmp(/* sigjmp_buf env, int savemask */);
  29. extern void    longjmp(/* jmp_buf env, int val */);
  30. extern void    _longjmp(/* jmp_buf env, int val */);
  31. extern void    siglongjmp(/* sigjmp_buf env, int val */);
  32. #endif /*__STDC__*/
  33.  
  34. /*
  35.  * Routines that call setjmp have strange control flow graphs,
  36.  * since a call to a routine that calls resume/longjmp will eventually
  37.  * return at the setjmp site, not the original call site.  This
  38.  * utterly wrecks control flow analysis.
  39.  */
  40. #pragma unknown_control_flow(sigsetjmp, setjmp, _setjmp)
  41.  
  42. #endif    /* !__sparc_setjmp_h */
  43.